\mysection{Funktionale Anforderungen}
\label{sec:funktionaleAnforderungen}
\begin{itemize}
\item Akquirierung von Kontextinformationen des Benutzers (Position, Aktivität,
vorhandene Geräte) 
\item Erstellung eines Benutzerprofils mit Präferenzen
\item Um die Präferenzen erfassen zu können, muss das System Möglichkeiten für
den User bieten, diese selbstständig anzugeben
\item Annahme von Nachrichten verschiedener Quellen (Anwendungen, Internet,
Kalender, etc.)
\item Ermittlung der Wichtigkeit einer Nachricht (für den Benutzer)
\item Auslieferung der Benachrichtigungen an visuelle, akustische und haptische
Ausgabegeräte
\item Bestimmung des Ausgabestils (Pop-Up, kurzer Ton, etc.) und ggf. Designs
(Anordnung der Benachrichtigungselemente, etc.)
\item Berechnung des optimalen Ausgabegerätes, -modalität und -zeitpunkts einer
Benachrichtigung unter Berücksichtigung der Benutzerpräferenzen und der
aktuellen Benutzersituation (Kontext)
\end{itemize}


- Muss sich dem Kontext bewusst sein in dem Sich die zu benachrichtigende Person
befindet

- Muss über eine Liste der Geräte und deren Modalitäten welche im Haus
installiert sind verfügen um weitere Entscheidungen zu treffen

- Muss Nachrichten entgegen nehmen können

- Muss entgegengenommene Nachrichten ein Wichtigkeitslevel zuweisen können
(basierend auf Standardwerten)

- Wichtigkeitslevel von verschiedenen Nachrichtentypen muss vom Nutzer
veränderbar sein (Explizit in den Einstellungen und Implizit über das
Feedbacksystem)

- Muss entscheiden können, welches Medium und welcher Stil (Pop-Up, Ton, etc) (Design: Anordnung der Benachrichtigungselemente,...) für die Benachrichtigung und für die
Interaktion am besten geeignet ist

- Muss entscheiden können, wann die Nachricht auszugeben ist (sofort oder
aufschiebbar), anhand von Wichtigkeitslevel und Kontext des Nutzers 

- Muss Nachrichten aufschieben können, falls der Nutzer sich dieser nicht im
Benachrichtigungsmoment widmen möchte

- Muss Timeouts erkennen, falls der Nutzer nicht auf eine Benachrichtigung
reagiert -> Nachricht eventuell über anderes Ausgabemedium ausgeben oder
Wichtigkeitslevel erhöhen, oder automatisch aufschieben und zu einem späteren
Zeitpunkt oder Event erneut benachrichtigen

- Muss mehrere Benutzer verwalten können für die Benachrichtigung
(benutzerdefinierte Einstellungen)

- Muss über ein Feedbacksystem verfügen: Nutzer kann dem System mitteilen,ob die
Art der Benachrichtigung für diese Nachricht passend war oder nicht, bzw sagen
ob er es zu aufdringlich fand oder zu wenig

- Muss über einen Nachrichtenscheduler verfügen, welcher Nachrichten speichert
und wieder zu angegebenen Zeitpunkten oder Events ausliefert.